home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / access / comlyr / acc2comp.txt < prev    next >
Text File  |  1994-09-26  |  20KB  |  434 lines

  1.  
  2.                    A C C 2 C O M P . T X T 
  3.  
  4.              Release Notes for Compatibility Layer 
  5.  
  6.     Microsoft Visual Basic (R) 3.0 -- Microsoft Access (R) 2.0 
  7.  
  8.            (C) Copyright Microsoft Corporation, 1994 
  9.  
  10.  
  11. This document describes the Microsoft Jet Database Engine version 
  12. 2.0/Visual Basic version 3.0 Compatibility Layer, which enables 
  13. VisualBasic version 3.0 and applications created with Visual Basic 
  14. version 3.0 to use data stored in Microsoft Access version 2.0 
  15. databases. 
  16.  
  17. ------------------------ 
  18. How To Use This Document 
  19. ------------------------ 
  20.  
  21. To view this document on screen using Microsoft Windows Notepad, 
  22. maximize the Notepad window. 
  23.  
  24. To print this document, open it using Windows Write, Microsoft 
  25. Word, or another word processor. Then select the entire document 
  26. and format the text in 10-point Courier font before printing. 
  27.  
  28. -------- 
  29. Contents 
  30. -------- 
  31.  
  32. 1.  Summary 
  33. 2.  Installing the Compatibility Layer 
  34. 3.  Limitations of the Compatibility Layer 
  35. 4.  Microsoft Jet Database Engine 1.1 Compatibility Issues 
  36. 5.  Adapting Your .INI Files 
  37. 6.  Availability of Version 2.0 Jet Database Engine Features 
  38.  
  39. ----------- 
  40. 1. Summary 
  41. ----------- 
  42.  
  43. Microsoft Access version 2.0 uses a file format for database 
  44. (.MDB) files that is different from the format used by Microsoft 
  45. Access versions 1.1 and 1.0. Microsoft Visual Basic version 3.0 
  46. cannot use databases in Microsoft Access 2.0 format. If you want 
  47. to share .MDB format databases between Microsoft Access 2.0 and 
  48. Visual Basic 3.0 applications, you must either: 
  49.  
  50. **  Keep the .MDB files in 1.1 format, which both Microsoft 
  51.     Access 2.0 and Visual Basic 3.0 can use. 
  52.  
  53. **  Install the Jet Database Engine 2.0/Visual Basic 3.0 
  54.     Compatibility Layer included on this disk. 
  55.  
  56. The rest of this document describes the Compatibility Layer. 
  57.  
  58. The files on this disk enable Visual Basic 3.0 (Standard or 
  59. Professional Edition) and applications created with Visual Basic 
  60. 3.0 to use the version 2.0 Jet database engine to read and write 
  61. data stored in Microsoft Access 2.0 databases. If your Visual 
  62. Basic 3.0 application doesn't use Microsoft Access 2.0 databases, 
  63. you won't significantly benefit from using the Compatibility 
  64. Layer. If you access remote data through attached tables in 
  65. databases that use the Jet database engine, you will benefit, but 
  66. you may need to make minor modifications to the application source 
  67. code. If you don't have access to the source code, you may want to 
  68. reconsider converting to the version 2.0 Jet database engine. 
  69.  
  70. --------------------------------------- 
  71. 2. Installing the Compatibility Layer 
  72. --------------------------------------- 
  73.  
  74. Before you begin, make backup copies of the existing Visual Basic 
  75. 3.0 data access files that will be either replaced or modified. 
  76. These include the following files. 
  77.  
  78. Table 2.1  Files That Are Replaced or Modified 
  79.            by the Compatibility Layer 
  80. --------------------------------------------------- 
  81. File            Description 
  82. --------------------------------------------------- 
  83. VBDB300.DLL     Visual Basic to Jet database engine 
  84.                 1.1 interface DLL 
  85. PDCTJET.DLL     Run-time DLL for Crystal Reports 
  86. PDIRJET.DLL     Run-time DLL for Crystal Reports 
  87. PDBJET.DLL      Run-time DLL for Crystal Reports 
  88. CRW.EXE         Crystal Report Designer application 
  89. VB.INI          Visual Basic initialization file 
  90. SETUPWIZ.INI    Setup Wizard initialization file 
  91.  
  92. ---------------------------------------------------------- 
  93. NOTE  You may not have all these files on your system; for 
  94. example, CRW.EXE is included only in the Professional 
  95. Edition of Visual Basic 3.0. 
  96. ----------------------------------------------------------- 
  97.  
  98. To upgrade your existing Visual Basic 3.0 Standard or Professional 
  99. Edition to support the version 2.0 Jet database engine, you need 
  100. the following files. 
  101.  
  102. Table 2.2  Files Needed to Upgrade Visual Basic 3.0 
  103. ---------------------------------------------------- 
  104. File            Description 
  105. ---------------------------------------------------- 
  106. MSAJT200.DLL    Version 2.0 Jet database engine 
  107. MSAJT112.DLL    Jet Database Engine 2.0/Visual Basic 
  108.                 3.0 Compatibility Layer 
  109. VBDB300.DLL     Visual Basic to Jet database engine support DLL 
  110. BTRV200.DLL     Btrieve ISAM driver library 
  111. PDX200.DLL      Paradox ISAM driver library 
  112. XBS200.DLL      Microsoft FoxPro ISAM driver library 
  113. CRWACC20.EXE    Program that modifies Crystal Reports files 
  114.                 to work with Microsoft Access 2.0 databases 
  115. SETUP.EXE       Application that installs the Compatibility Layer 
  116. ACC2COMP.TXT    This file 
  117.  
  118. >>>To install the Compatibility Layer 
  119. ------------------------------------- 
  120.   1. Insert the Compatibility Layer disk into drive A. 
  121.   2. From the File menu in the Windows Program Manager or 
  122.      File Manager, choose Run. 
  123.   3. Type a:setup 
  124.   4. Follow the Setup instructions on screen. 
  125.  
  126. Once Setup is complete, you may not need to do to anything else to 
  127. your Visual Basic application, unless you've included code for 
  128. creating or compacting databases, or code that specifically refers 
  129. to version 1.1 installable ISAM drivers. Details on how to deal 
  130. with these and other contingencies are discussed in the following 
  131. sections.
  132.  
  133. CRWACC20.EXE is an MS-DOS-based program that enables Crystal 
  134. Reports for Visual Basic to work with the version 2.0 Jet database 
  135. engine. It modifies the following files: 
  136.  
  137. **  CRW.EXE 
  138. **  PDBJET.DLL 
  139. **  PDIRJET.DLL 
  140. **  PDCTJET.DLL 
  141.  
  142. The program looks for these files in the current directory or in a 
  143. directory passed in as part of the command line when it is run. To 
  144. modify these files, you must run this program after running Setup. 
  145. Once the program has modified the files it is of no further use. 
  146. However, you might reinstall Crystal Reports after you install the 
  147. Compatibility Layer, so you may want to run the program again 
  148. later. 
  149.  
  150. >>>To run CRWACC20.EXE 
  151. ---------------------- 
  152.   * At the command prompt, type CRWACC20 <path to CRW.EXE> 
  153.     For example, if CRW.EXE is in a VB subdirectory 
  154.     called REPORT, you type this: 
  155.     CRWACC20 c:\vb\report 
  156.  
  157. If CRWACC20.EXE finds the files in the specified directory, it 
  158. modifies them. If you don't specify a path, it looks in the 
  159. current directory. When this program modifies a file, the date for 
  160. the file is set to the current date. 
  161.  
  162. After you run Setup, examine your VB.INI file for references to 
  163. the Jet database engine 1.1 installable ISAM drivers (BTRV110.DLL, 
  164. PDX110.DLL, XBS110.DLL). Replace any references to these drivers 
  165. with the new Jet database engine 2.0 driver names (BTRV200.DLL, 
  166. PDX200.DLL, XBS200.DLL). If you use the Paradox driver 
  167. (PDX200.DLL), you must also add the entry "ParadoxNetStyle=3.x" to 
  168. the [Paradox ISAM] section of the VB.INI file. In addition, you 
  169. need to modify the .INI files of any executable applications 
  170. you've created. For example, if you have an application named 
  171. BREAD.EXE, you'd have to modify the BREAD.INI file as well. For an 
  172. example of new .INI entries, see Section 5, "Adapting Your .INI 
  173. Files," later in this document. 
  174.  
  175. You should also change the entries in SETUPWIZ.INI to specify the 
  176. new files used in the Compatibility Layer. SETUPWIZ.INI is used 
  177. with the Setup Wizard to create distribution disks for your 
  178. application. Once you've installed the Compatibility Layer, any 
  179. applications you create that perform data access always use the 
  180. version 2.0 Jet database engine, even if you're accessing data in 
  181. earlier .MDB formats or other file formats. Therefore, whenever 
  182. you distribute an application created in Visual Basic 3.0 that 
  183. performs data access, you need to include the files listed 
  184. previously in Table 2.2. (You're free to distribute these files 
  185. with your application.) For an example of new entries for the 
  186. SETUPWIZ.INI file, see Section 5, "Adapting Your .INI Files," 
  187. later in this document. 
  188.  
  189. Setup doesn't remove the version 1.1 Jet database engine files 
  190. from your Windows System directory. If you have no other 
  191. application using those files (such as Microsoft Access 1.1), you 
  192. can delete them. As a precaution, however, you may want to rename 
  193. them or move them to another directory for a few days before 
  194. deleting them to ensure that no other application uses them. 
  195.  
  196. ------------------------------------------ 
  197. 3.  Limitations of the Compatibility Layer 
  198. ------------------------------------------ 
  199.  
  200. Although the Compatibility Layer enables your Visual Basic 3.0 
  201. applications to read and write data stored in Microsoft Access 2.0 
  202. databases, it doesn't give your applications access to all the new 
  203. Jet database engine 2.0 objects and features because the existing 
  204. Visual Basic 3.0 language doesn't support programmatic access to 
  205. these new features. 
  206.  
  207. When your Visual Basic 3.0 application manipulates data in 
  208. Microsoft Access 2.0 databases, you'll encounter the following 
  209. limitations: 
  210.  
  211. **  New Jet database engine 2.0 errors, which result from 
  212.     new database engine behavior, will be returned as unknown 
  213.     errors ("Reserved error <error number.>").  The error 
  214.     numbers listed in the error messages are version 2.0 
  215.     Jet database engine numbers.  To determine the message 
  216.     associated with an error number, search for "error codes" 
  217.     in Microsoft Access 2.0 Help. 
  218.  
  219. **  Visual Basic version 3.0 doesn't take advantage of any 
  220.     of the new Jet database engine 2.0 properties, objects, 
  221.     or methods.  See Section 6, "Availability of Version 2.0 
  222.     Jet Database Engine Features," at the end of this document 
  223.     for a list of major new features and information about 
  224.     their accessibility from Visual Basic 3.0 applications. 
  225.  
  226. **  The version 2.0 Jet database engine supports eight new 
  227.     collating orders (Arabic, Russian, Czech, Greek, Hebrew, 
  228.     Hungarian, Polish, and Turkish), which are unavailable to 
  229.     Visual Basic 3.0.  Databases created in any of these 
  230.     languages are available in read-only mode only. Data in 
  231.     the languages may not sort correctly when accessed by 
  232.     Visual Basic. 
  233.  
  234. **  The version 2.0 Jet database engine allows the entry of 
  235.     zero-length strings as well as Null values.  Because of 
  236.     this, Null values aren't automatically converted to 
  237.     zero-length strings when they're entered into version 
  238.     2.0  databases.  This may cause some updates to fail 
  239.     because of validation rules that require zero-length 
  240.     strings, resulting in a message for an unknown error 
  241.     ("Reserved error <error number.>").  To fix the error, 
  242.     you have to either use Microsoft Access 2.0 to change 
  243.     the rule or not enter Null data into the database. 
  244.     For more information, see Section 6, "Availability of 
  245.     Version 2.0 Jet Database Engine Features." 
  246.  
  247. **  You can't open a dynaset on a remote database (such as a 
  248.     SQL Server database) within a transaction using the version 
  249.     2.0 Jet database engine. For example, the following code will 
  250.     fail as the dynaset is created: 
  251.  
  252.     Dim MyDB As Database, MyDS As Dynaset 
  253.     Set MyDB = OpenDatabase("")   ' Open user-selected external 
  254.                                   ' database. 
  255.     MyDB.BeginTrans               ' Begin transaction. 
  256.     ' Open first table. 
  257.     Set MyDS = MyDB.CreateDynaset(MyDB.TableDefs(0))   
  258.  
  259.  
  260.     However, if you attach tables from the remote database to 
  261.     a Microsoft Access database, you can create dynasets on 
  262.     those tables within transactions. (Note that access to 
  263.     remote data is faster if the tables are attached.) 
  264.  
  265. ----------------------------------------------------------- 
  266. 4.  Microsoft Jet Database Engine 1.1 Compatibility Issues 
  267. ------------------------------------------------------------ 
  268.  
  269. When you use the Compatibility Layer to access data in version 2.0 
  270. format, you should keep the following issues in mind: 
  271.  
  272. **  Because the Compatibility Layer is uniquely named 
  273.     (MSAJT112.DLL), it shouldn't cause any problems with 
  274.     applications (such as Microsoft Access 1.1) that use 
  275.     the file MSAJT110.DLL. Jet database engine 1.1 
  276.     installable ISAM drivers can't be used by the version 
  277.     2.0 database engine. If the version 1.1 drivers are 
  278.     listed in the [Installable ISAM] section of your 
  279.     .INI file, an error will occur when you attempt to 
  280.     use your application to access data in any of these 
  281.     database formats. 
  282.  
  283. **  Visual Basic 3.0 applications that use the version 
  284.     2.0 Jet database engine may be able to update data 
  285.     in situations in which they previously could not (for 
  286.     example, the "one" side of a one-to-many relationship). 
  287.     However, applications can't update data when the change 
  288.     would orphan records on the many side of a recordset. 
  289.  
  290. **  For some new SQL reserved words, you must enclose the 
  291.     word in brackets ([ ]) if you want to use it as part 
  292.     of an identifier (for example, a table or field name) 
  293.     in the context of an SQL string.  For a list of the Jet 
  294.     database engine 2.0 SQL reserved words, search Microsoft 
  295.     Access 2.0 Help for "SQL." 
  296.  
  297. **  By default, the CreateDatabase function and CompactDatabase 
  298.     statement now create databases in Jet database engine 2.0 
  299.     format. You can override this default behavior by using 
  300.     the DB_VERSION10 constant (in the file DATACONS.TXT).  Using 
  301.     this constant creates a version 1.1 database, not a version 
  302.     1.0 database.  You can't create version 1.0 databases. 
  303.     The following table shows which type of database is created 
  304.     when you use CreateDatabase and CompactDatabase with and 
  305.     without DB_VERSION10. 
  306.  
  307. ----------------------------------------------------------------- 
  308. Jet database engine   Creates by default      With DB_VERSION10 
  309. ----------------------------------------------------------------- 
  310. Version 1.1           Version 1.1 database    Version 1.0 database 
  311. Version 2.0           Version 2.0 database    Version 1.1 database 
  312.  
  313. ------------------------------ 
  314. 5.  Adapting Your .INI Files 
  315. ------------------------------ 
  316.  
  317. Your .INI file is used by the Jet database engine to locate driver 
  318. files. When you're designing your application, the VB.INI file 
  319. contains entries that point to each of the installable ISAM 
  320. drivers your application will need. If you're creating an 
  321. executable Visual Basic 3.0 program, you'll need to create an .INI 
  322. file for the application that also contains these entries. For 
  323. example, if your application is named CAT.EXE, you'll need to 
  324. create an .INI file called CAT.INI and add the necessary entries. 
  325.  
  326. Shown below is the default [Installable ISAM] section of the 
  327. VB.INI file. Although it includes entries for all the installable 
  328. ISAM drivers, the .INI file you create for your application may 
  329. need only one of these entries. If you use the Paradox driver 
  330. (PDX200.DLL), you also need to add a line to the [Paradox ISAM] 
  331. section of your .INI files. You don't need to change any of the 
  332. other entries in your .INI files. 
  333.  
  334. Default entries for VB.INI and <appname>.INI 
  335. ------------------------------------------------------------------ 
  336. [Installable ISAMs] 
  337. Paradox 3.X=C:\VB\PDX200.DLL    ;Path of the Paradox 3.x driver 
  338. Paradox 4.X=C:\VB\PDX200.DLL    ;Path of the Paradox 4.x driver 
  339. FoxPro 2.0=C:\VB\XBS200.DLL     ;Path of the Microsoft FoxPro 2.0
  340.                                  driver 
  341. FoxPro 2.5=C:\VB\XBS200.DLL     ;Path of the Microsoft FoxPro 2.5 
  342.                                  driver 
  343. dBASE III=C:\VB\XBS200.DLL      ;Path of the dBASE III driver 
  344. dBASE IV=C:\VB\XBS200.DLL       ;Path of the dBASE IV driver 
  345. Btrieve=C:\VB\BTRV200.DLL       ;Path of the Btrieve driver 
  346.  
  347. [Paradox ISAM] 
  348. ParadoxNetStyle=3.x             ;Required to open Paradox 
  349. databases 
  350.  
  351. --------------------------------------------------------- 
  352. NOTE   You don't need new ODBC drivers to use the version 
  353. 2.0 Jet database engine; it works correctly with the ODBC 
  354. drivers that were included with Visual Basic version 3.0. 
  355. --------------------------------------------------------- 
  356.  
  357. In addition, you can adapt SETUPWIZ.INI to accommodate the new 
  358. drivers and additional files. You can remove entries for these 
  359. files: 
  360.  
  361. **  MSAJT110.DLL 
  362. **  MSAES110.DLL 
  363. **  XBS110.DLL 
  364. **  PDX110.DLL 
  365. **  BTRV110.DLL 
  366.  
  367. These are the new entries for SETUPWIZ.INI. 
  368. ---------------------------------------------------- 
  369. [ACCESS]                ; Key used by Setup Wizard 
  370.                         ; Jet database engine files 
  371. file1=MSABC110.DLL 
  372. file2=MSAJT200.DLL 
  373. file3=VBDB300.DLL 
  374. file4=SHARE.EXE:1       ; Jet database engine DLLs require 
  375.                         ;  'SHARE.EXE /L:500' in AUTOEXEC.BAT 
  376. file5=MSAJT112.DLL 
  377.  
  378.  
  379. ; Files used by the Crystal Report (*.RPT) files 
  380. [PDBJET.DLL] 
  381. file1=PDBJET.DLL     ; Jet database engine DLL for Crystal Reports 
  382. file2=PDIRJET.DLL    ; Jet database engine DLL for Crystal Reports 
  383. file3=PDCTJET.DLL    ; Jet database engine DLL for Crystal Reports 
  384. file4=MSABC110.DLL   ; Jet database engine DLL for Crystal Reports 
  385. file5=MSAJT200.DLL   ; Jet database engine DLL for Crystal Reports 
  386. file6=VBDB300.DLL    ; Visual Basic DLL for Crystal Reports 
  387. file7=SHARE.EXE:1    ; Jet database engine DLLs require 
  388.                      ;  'SHARE.EXE /L:500' in AUTOEXEC.BAT 
  389. file8=MSAJT112.DLL   ; Compatibility Layer 
  390.  
  391. ------------------------------------------------------------- 
  392. 6.  Availability of Version 2.0 Jet Database Engine Features 
  393. ------------------------------------------------------------- 
  394.  
  395. This section lists new features of the version 2.0 Jet database 
  396. engine and indicates whether you can take advantage of them in 
  397. Visual Basic 3.0 when you use the Compatibility Layer. 
  398.  
  399. Cascading Updates and Deletes 
  400. ----------------------------- 
  401.  
  402. In Microsoft Access 2.0, you can specify that updates and/or 
  403. deletions in referenced fields can be cascaded to all referencing 
  404. tables. In Visual Basic 3.0, however, you can't specify cascading 
  405. updates or deletes. Consequently, you must use Microsoft Access 
  406. 2.0 to set this feature. Note that some errors generated from 
  407. cascading updates and deletes are returned as reserved errors. 
  408. Whenever possible, these new errors are mapped to existing errors. 
  409.  
  410. Table-Level Validation 
  411. ---------------------- 
  412.  
  413. Field- and record-level validation is now maintained by the Jet 
  414. database engine. This includes setting table-level validation 
  415. rules as well as default values. In Visual Basic 3.0, you can't 
  416. set table-level validation rules or default values. Once these 
  417. values are set by Microsoft Access 2.0, applications created in 
  418. Visual Basic 3.0 will see the results. Violations of table-level 
  419. validation rules generate reserved errors. 
  420.  
  421. Zero-Length Strings 
  422. ------------------- 
  423.  
  424. In Microsoft Access 2.0 databases, you can enter a zero- length 
  425. string ("") to indicate data that is known but doesn't exist. A 
  426. zero-length string is a string in a Text field containing no 
  427. characters; it's not the same as Null. Visual Basic converts all 
  428. zero-length strings to Null. There is no way to enter zero-length 
  429. strings in Visual Basic 3.0. When table-level validation rules or 
  430. default values have been set by Microsoft Access to enforce the 
  431. entry of zero-length strings, Visual Basic 3.0 can't enter Null 
  432. data into these fields. 
  433.  
  434.